home *** CD-ROM | disk | FTP | other *** search
- unit Unit1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls;
-
- type
- TForm1 = class(TForm)
- Button1: TButton;
- procedure Button1Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.DFM}
-
- uses
- AADES;
-
- procedure TForm1.Button1Click(Sender: TObject);
- var
- DESEngine : TaaDESEngine;
- Key : TaaDESKey64;
- Plain : TaaDESBlock;
- Cipher : TaaDESBlock;
- i : integer;
-
- InStrm : TFileStream;
- OutStrm : TFileStream;
-
- begin
- writeln('--Perform standard test case--');
- Key[0] := $01;
- Key[1] := $23;
- Key[2] := $45;
- Key[3] := $67;
- Key[4] := $89;
- Key[5] := $ab;
- Key[6] := $cd;
- Key[7] := $ef;
- Plain[0] := $01;
- Plain[1] := $23;
- Plain[2] := $45;
- Plain[3] := $67;
- Plain[4] := $89;
- Plain[5] := $ab;
- Plain[6] := $cd;
- Plain[7] := $e7;
-
- write('Key: ');
- for i := 0 to 7 do
- write(Format('%.2x', [Key[i]]));
- writeln;
-
- write('Plaintext: ');
- for i := 0 to 7 do
- write(Format('%.2x', [Plain[i]]));
- writeln;
-
- writeln('encrypting...');
- FillChar(Cipher, sizeof(Cipher), 0);
- DESEngine := TaaDESEngine.Create(Key, true);
- try
- DESEngine.ProcessBlock(Plain, Cipher);
- write('Ciphertext: ');
- for i := 0 to 7 do
- write(Format('%.2x', [Cipher[i]]));
- writeln;
- finally
- DESEngine.Free;
- end;
-
- writeln('(should be: C95744256A5ED31D)');
-
- writeln('decrypting...');
- FillChar(Plain, sizeof(Plain), 0);
- DESEngine := TaaDESEngine.Create(Key, false);
- try
- DESEngine.ProcessBlock(Cipher, Plain);
- write('Plaintext: ');
- for i := 0 to 7 do
- write(Format('%.2x', [Plain[i]]));
- writeln;
- finally
- DESEngine.Free;
- end;
-
- writeln('--Encrypt file with DES/ECB--');
- InStrm := nil;
- OutStrm := nil;
- DESEngine := nil;
- try
- DESEngine := TaaDESEngine.Create(Key, true);
- InStrm := TFileStream.Create('unit1.pas', fmOpenRead + fmShareDenyWrite);
- OutStrm := TFileStream.Create('c:\unit1.ecb', fmCreate);
- DESEngine.ProcessStream(InStrm, OutStrm, dmECB);
- finally
- DESEngine.Free;
- OutStrm.Free;
- InStrm.Free;
- end;
-
- writeln('--Decrypt file with DES/ECB--');
- InStrm := nil;
- OutStrm := nil;
- DESEngine := nil;
- try
- DESEngine := TaaDESEngine.Create(Key, false);
- InStrm := TFileStream.Create('c:\unit1.ecb', fmOpenRead + fmShareDenyWrite);
- OutStrm := TFileStream.Create('c:\unit1.pa1', fmCreate);
- DESEngine.ProcessStream(InStrm, OutStrm, dmECB);
- finally
- DESEngine.Free;
- OutStrm.Free;
- InStrm.Free;
- end;
-
- writeln('--Encrypt file with DES/CBC--');
- InStrm := nil;
- OutStrm := nil;
- DESEngine := nil;
- try
- DESEngine := TaaDESEngine.Create(Key, true);
- InStrm := TFileStream.Create('unit1.pas', fmOpenRead + fmShareDenyWrite);
- OutStrm := TFileStream.Create('c:\unit1.cbc', fmCreate);
- DESEngine.ProcessStream(InStrm, OutStrm, dmCBC);
- finally
- DESEngine.Free;
- OutStrm.Free;
- InStrm.Free;
- end;
-
- writeln('--Decrypt file with DES/CBC--');
- InStrm := nil;
- OutStrm := nil;
- DESEngine := nil;
- try
- DESEngine := TaaDESEngine.Create(Key, false);
- InStrm := TFileStream.Create('c:\unit1.cbc', fmOpenRead + fmShareDenyWrite);
- OutStrm := TFileStream.Create('c:\unit1.pa2', fmCreate);
- DESEngine.ProcessStream(InStrm, OutStrm, dmCBC);
- finally
- DESEngine.Free;
- OutStrm.Free;
- InStrm.Free;
- end;
-
- writeln('Done');
- end;
-
- end.
-